Flow-Centric, Back-in-Time Debugging

نویسندگان

  • Adrian Lienhard
  • Julien Fierz
  • Oscar Nierstrasz
چکیده

Conventional debugging tools present developers with means to explore the run-time context in which an error has occurred. In many cases this is enough to help the developer discover the faulty source code and correct it. However, rather often errors occur due to code that has executed in the past, leaving certain objects in an inconsistent state. The actual run-time error only occurs when these inconsistent objects are used later in the program. So-called back-intime debuggers help developers step back through earlier states of the program and explore execution contexts not available to conventional debuggers. Nevertheless, even back-in-time debuggers do not help answer the question, “Where did this object come from?” The Object-Flow Virtual Machine, which we have proposed in previous work, tracks the flow of objects to answer precisely such questions, but this VM does not provide dedicated debugging support to explore faulty programs. In this paper we present a novel debugger, called Compass, to navigate between conventional run-time stack-oriented control flow views and object flows. Compass enables a developer to effectively navigate from an object contributing to an error back-in-time through all the code that has touched the object. We present the design and implementation of Compass, and we demonstrate how flow-centric, back-in-time debugging can be used to effectively locate the source of hard-to-find bugs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Program Development Tools: Debugging by Reverse Computing

More and more program development tools have turned to Web-based. It has an advantage on being a multiplatform tool. This work proposes a debugging tool based on web interface. The main idea of the tool is that the execution of the program can be regarded as a flow. This flow can be captured and played back later. Therefore, any state of the executed program can be analyzed and errors can be pi...

متن کامل

Object-Centric Reflection

Reflective applications are able to query and manipulate the structure and behavior of a running system. This is essential for highly dynamic software that needs to interact with objects whose structure and behavior are not known when the application is written. Software analysis tools, like debuggers, are a typical example. Oddly, although reflection essentially concerns run-time entities, ref...

متن کامل

A Complete Digital Design and Test Flow in an Academic Environment

This paper shows an automated flow to generate test vectors for digital IC-designs in an academic environment. The tool “Tetramax” from Synopsys has been used for Automatic Test Pattern Generation. The ATS200 hardware verification tester together with IMS software provides a structured environment for prototype analysis and for real-time comparison of the design performance against the simulate...

متن کامل

Cut-based functional debugging for programmable systems-on-chip

Due to the growth of both design complexity and the number of gates per pin, functional debugging has emerged as a critical step in the development of a system-on-chip (SOC). Traditional approaches, such as system emulation and simulation, are becoming increasingly inadequate to address the system debugging needs. Design simulation is two to ten orders of magnitude slower than emulation and, th...

متن کامل

A Lightweight Object-Oriented Distributed Services Framework for Engineering Interactive Applications

We present a lightweight open source object-oriented services framework for constructing distributed applications. The congruence of internal object and externally passed messages facilitates the rapid development of correct, robust, and high-performance information-centric applications. The Object-Oriented Distributed Semantic Services (OODSS) framework is validated through its intensive use i...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009